package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.*;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.util.List;

/**
 * 会员信息查询数据库操作接口定义
 *
 * @author liujinan
 * @version 1.0.0
 * @date 2020/3/27
 */
public interface MemberInfoListMapper {

    /**
     * 会员列表信息查询数据库操作接口定义
     *
     * @param instId        法人机构号
     * @param memberId      会员编号
     * @param mobileNo      手机号
     * @param wechartOpenId 微信openId
     * @param alipayUserId  阿里用户编号
     * @param CardNo        卡号
     * @param pageInfo      分页信息
     * @return cc.rengu.oltp.utility.bean.PageResult 查询结果列表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/3/27
     * @Description: 会员列表信息查询数据库操作接口定义
     */
    PageResult selectMemberInfo(String instId, String memberId, String mobileNo, String wechartOpenId, String alipayUserId,
                                String CardNo, PageInfo pageInfo) throws Exception;

    /**
     * 根据主键查询会员信息
     *
     * @param instId   法人机构号
     * @param memberId 会员编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.MemberInfo>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/6/16
     * @Description: 根据主键查询会员信息
     */
    TMMemberInfo selectMemberInfoByPK(String instId, String memberId) throws Exception;

    /**
     * 会员明细信息查询数据库操作接口定义
     *
     * @param instId   法人机构号
     * @param memberId 会员编号
     * @param pageInfo 分页信息
     * @return java.util.List<cc.rengu.igas.momp.common.entity.MemberDetailInfo>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/3/27
     * @Description: 会员明细信息查询数据库操作接口定义
     */
    PageResult selectMemberDetailInfo(String instId, String memberId, PageInfo pageInfo) throws Exception;

    /**
     * 会员明细信息查询数据库操作接口定义(非分页方式)
     *
     * @param instId   法人机构号
     * @param memberId 会员编号
     * @return java.util.List<cc.rengu.igas.momp.common.entity.MemberDetailInfo>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/6/16
     * @Description: 会员明细信息查询数据库操作接口定义(非分页方式)
     */
    List<TMMemberDetail> selectMemberDetailInfoNoPage(String instId, String memberId) throws Exception;

    /**
     * 会员卡券信息查询接口定义
     *
     * @param instId       法人机构号
     * @param memberId     会员编号
     * @param pageInfo     分页信息
     * @param couponStatus
     * @return java.util.List<cc.rengu.igas.momp.common.entity.CouponInfo>
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/3/31
     * @Description: 会员卡券信息查询接口定义
     */
    PageResult selectMemberCouponInfo(String instId, String memberId, String couponStatus, PageInfo pageInfo) throws Exception;

}
